/* package main

import "fmt"

func main() {

	for i := 1; i < 10; {

		for j := 1; j < 10; {
			s := i * j
			if i == j {
				fmt.Printf("%+v*%v=%v\n", i, j, s)
				j++
				i = 1

			} else if i < j {
				fmt.Printf("%+v*%v=%v  ", i, j, s)
				i++
			} //else {
			//continue
			//}
		}
	}

} */

//第二题
/* package main

import (
	"fmt"
	"math/rand"
)

func main() {
	s := 0
	k := 1
	for i := 0; i < 20; i++ {
		//fmt.Println(rand.Intn(20) + 1)

		if i%2 == 0 {
			s = s + rand.Intn(20) + 1

		} else {
			k = k * (rand.Intn(20) + 1)

		}
		fmt.Printf("累加求和%v\n", s)
		fmt.Printf("累乘求积%v\n", k)
	}
} */

/*package main

import (
	"fmt"
)

func main() {
	var a0 = [8]int{1, 4, 9, 16, 2, 5, 10, 15}
	var s1 []int

	for i := 0; i < 7; i++ {
		s1 = append(s1, a0[i]+a0[i+1])
	}
	fmt.Printf(" %v", s1)
}
*/

/*package main

import (
	"fmt"
	"math/rand"
)

func main() {
	s := 0
	for i := 0; i < 100; i++ {

		s = rand.Intn(201) - 100
		fmt.Printf("%v\n", s)
	}
}*/

package main

import (
	"fmt"
	"math/rand"
	"sort"
)

// 3、数字重复统计
// 随机产生100个整数
// 数字的范围[-100，100]
// 降序输出这些生成的数字并打印其重复的次数

func main() {
	s := 0
	var s1 []int
	//s1 := []int{100}
	for i := 0; i < 100; i++ {

		s = rand.Intn(201) - 100
		fmt.Printf("%v\n", s)
		s1 = append(s1, s)
	}

	sort.Sort(sort.Reverse(sort.IntSlice(s1)))
	fmt.Println(s1)

	/*	for i, k := 1, 1; k < 2; k++ {

		for j := 1; j < 10; {
			s := i * j
			if i == j {
				fmt.Printf("%v*%v=%v\n", i, j, s)
				j++
				i = 1

			} else if i < j {
				fmt.Printf("%v*%v=%v  ", i, j, s)
				i++
			}

		}
	}*/
}

// 4、简述线性数据结构和哈希表优劣
//线性表是一组元素的序列的抽象，它由有穷个元素组成，缺点是搜索或者插入数据会根据数据量而增加时间复杂度
//哈希表基于哈希函数进行快速查找，效率高，将键映射到值的数据结构，优点是可以快速查找和插入，缺点是输入空间远远大于输出空间，可能不同的x经过hash得到相同的y,会产生碰撞

//线性数据结构是一种数据元素按照线性顺序排列的数据结构。线性数据结构的优点是具有快速的遍历和访问元素的能力，因为它们按照顺序排列。然而，线性数据结构的缺点是它们的搜索和插入操作的时间复杂度可能受到数据结构长度的限制。

//哈希表是一种基于哈希函数进行快速查找的数据结构。它将键映射到值的数据结构，其中哈希函数将键转换为索引，然后使用该索引在数组中查找对应的值。哈希表的优点是它们具有快速的查找和插入操作，这是由于哈希函数将键转换为索引的特性。哈希表的缺点是哈希冲突可能会发生，这会影响其时间复杂度，并且它们可能需要更多的内存来存储桶和链表等数据结构。
